In recent years the memory requirements for personal computers have greatly increased. A major cause of the need for more memory is the desire of computer users to display graphical images, including three-dimensional graphic images, with high accuracy and detail. As a result, many personal computers being sold today include more than 16 megabytes (MB) of available system memory.
A problem with having more than 16 MB of memory is that some computer devices, such as an industry standard architecture (ISA) computer bus, cannot recognize addresses greater than the 24 bits needed to address 16 MB (2.sup.24 =16 MB). As a result, prior art systems with more than 16 MB of system memory have allocated to ISA devices addresses below 16 M to allow software visibility to the ISA devices on the ISA bus. Allocating addresses below 16 M to the ISA devices means that some system memory must be deallocated. That is, the software used by the computer system processor is not given addresses that allow the software to access the deallocated memory portion. The prior art computer systems waste valuable memory resources by simply ignoring the deallocated memory portion.
An example of the problem of deallocating memory can be appreciated with respect to FIG. 1. On the left side of FIG. 1 is a physical view of the computer system memory which has 24 MB of memory locations. On the right side of FIG. 1 is a view of the computer system's address space that is visible to the computer system software. The computer system has a Peripheral Component Interconnect (PCI) that is allocated system addresses greater than 24 M. The computer system also has an ISA bus that is unable to process system addresses above 16 M because the ISA bus has only a 24 bit address bus. Thus, the ISA devices must be allocated system addresses of 16 M or less. That is, the computer system allocates system addresses from 15 M to 16 M to the ISA devices so that the ISA devices can be accessed. In allocating 1 MB of system addresses to the ISA devices, the prior art computer system can allocate fewer system addresses to the system memory. As a result, a 1 MB portion of the physical storage locations of the system memory will go unused.